--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / components / messages / messageListVirtual.js
Displaying Raw • Download
meshchatx/src/frontend/components/messages/messageListVirtual.js ad35cc8bacba258d1b433a52de9bbc0f33172bb7 (ad35cc8b) Text, 2.31 KB
Tff7b72export Tff7b72const Te6edf3MIN_VIRTUAL_DISPLAY_GROUPS Tff7b72= T79c0ff48Tb4b4b4;
T8b949e/**
* Display groups from {@link selectedPeerChatDisplayGroups} are newest-first.
* Virtual + normal document flow use oldest at the top (index 0).
* @param {unknown[]} displayGroups
* @returns {unknown[]}
*/
Tff7b72export Tff7b72function Te6edf3displayGroupsOldestFirstTb4b4b4(Te6edf3displayGroupsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3displayGroupsTff7b72?Tb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3displayGroupsTb4b4b4.Te6edf3sliceTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3reverseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/**
* Initial row height guess before measureElement runs (variable-height rows).
* @param {unknown} entry
* @returns {number}
*/
Tff7b72export Tff7b72function Te6edf3estimateGroupHeightTb4b4b4(Te6edf3entryTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3entry Tff7b72|| Tff7b72typeof Te6edf3entry Tff7b72!== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff96Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3entryTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"dateDivider"Tb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff44Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3entryTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"imageGroup"Tb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff340Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3msg Tff7b72= Te6edf3entryTb4b4b4.Te6edf3chatItemTff7b72?Tb4b4b4.Te6edf3lxmf_messageTb4b4b4;
Tff7b72const Te6edf3fields Tff7b72= Te6edf3msgTff7b72?Tb4b4b4.Te6edf3fieldsTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3fieldsTff7b72?Tb4b4b4.Te6edf3image Tff7b72&& Tff7b72!Te6edf3fieldsTff7b72?Tb4b4b4.Te6edf3file_attachmentsTff7b72?Tb4b4b4.Te6edf3length Tff7b72&& Tff7b72!Te6edf3fieldsTff7b72?Tb4b4b4.Te6edf3audioTb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff280Tb4b4b4;
Tb4b4b4}
Tff7b72let Te6edf3height Tff7b72= T79c0ff88Tb4b4b4;
Tff7b72const Te6edf3content Tff7b72= Tb4b4b4(Te6edf3msgTff7b72?Tb4b4b4.Te6edf3content Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3contentTb4b4b4) Tb4b4b4{
Te6edf3height Tff7b72+= Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(T79c0ff160Tb4b4b4, Tffa657MathTb4b4b4.Te6edf3ceilTb4b4b4(Te6edf3contentTb4b4b4.Te6edf3length Tff7b72/ T79c0ff40Tb4b4b4) Tff7b72* T79c0ff18Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3fileCount Tff7b72= Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3fieldsTff7b72?Tb4b4b4.Te6edf3file_attachmentsTb4b4b4) Tff7b72? Te6edf3fieldsTb4b4b4.Te6edf3file_attachmentsTb4b4b4.Te6edf3length Tff7b72: T79c0ff0Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3fileCount Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3height Tff7b72+= Te6edf3fileCount Tff7b72* T79c0ff56Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3fieldsTff7b72?Tb4b4b4.Te6edf3audioTb4b4b4) Tb4b4b4{
Te6edf3height Tff7b72+= T79c0ff72Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3fieldsTff7b72?Tb4b4b4.Te6edf3telemetry Tff7b72|| Te6edf3fieldsTff7b72?Tb4b4b4.Te6edf3telemetry_stream Tff7b72|| Te6edf3fieldsTff7b72?Tb4b4b4.Te6edf3commandsTff7b72?Tb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Te6edf3height Tff7b72+= T79c0ff48Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3heightTb4b4b4;
Tb4b4b4}
T8b949e/**
* @param {unknown[]} groupsOldestFirst
* @param {string} hash
* @returns {number}
*/
Tff7b72export Tff7b72function Te6edf3findDisplayGroupIndexForMessageHashTb4b4b4(Te6edf3groupsOldestFirstTb4b4b4, Te6edf3hashTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3groupsOldestFirstTff7b72?Tb4b4b4.Te6edf3length Tff7b72|| Tff7b72!Te6edf3hashTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72-T79c0ff1Tb4b4b4;
Tb4b4b4}
Tff7b72for Tb4b4b4(Tff7b72let Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3groupsOldestFirstTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3g Tff7b72= Te6edf3groupsOldestFirstTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3g Tff7b72|| Tff7b72typeof Te6edf3g Tff7b72!== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3gTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"dateDivider"Tb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3gTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"imageGroup" Tff7b72&& Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3gTb4b4b4.Te6edf3itemsTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3gTb4b4b4.Te6edf3itemsTb4b4b4.Te6edf3someTb4b4b4(Tb4b4b4(Te6edf3itTb4b4b4) Tb4b4b4=> Te6edf3itTff7b72?Tb4b4b4.Te6edf3lxmf_messageTff7b72?Tb4b4b4.Te6edf3hash Tff7b72=== Te6edf3hashTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3iTb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3gTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"single" Tff7b72&& Te6edf3gTb4b4b4.Te6edf3chatItemTff7b72?Tb4b4b4.Te6edf3lxmf_messageTff7b72?Tb4b4b4.Te6edf3hash Tff7b72=== Te6edf3hashTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3iTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Tff7b72-T79c0ff1Tb4b4b4;
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────